home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / taropyon / hewin / ccisrc / dcn.cci < prev    next >
Text File  |  1993-11-30  |  10KB  |  418 lines

  1. /*************************************************************************
  2. *    "dcn.cci"    : DOS コンソール用
  3. *************************************************************************/
  4.  
  5. char    *_current_dcn;
  6. char    *_cns_console;
  7. char    _cns_comspec[128];
  8.  
  9. #define    DCNPTR    _current_dcn
  10. #define    CONSOLE    _cns_console
  11. #define    COMSPEC    _cns_comspec
  12.  
  13. #include    "dcntool.cci"
  14. #ifndef    _ARCHIVE_IGN
  15. #    ifdef    _ARCHIVE_LHX
  16. #        include    "lhx.cci"
  17. #    else
  18. #        include    "lha.cci"
  19. #    endif
  20. #endif
  21. #include    "ish.cci"
  22. #include    "mktags.cci"
  23.  
  24. /*************************************************************************
  25. *    [COMMAND]ボタン
  26. *************************************************************************/
  27.  
  28. int        DcnUsr_commandMenu( char *dcn, int x, int y )
  29. {
  30.     int        ret;
  31.     char    *obj;
  32.     char    *mnu;
  33.     char    *cmd;
  34.  
  35.     obj = MNU_alloc(3);
  36.     MNU_setObj(obj, 0, MNU_NOR, 'D', "Directory"    , NULL, 1, NULL, NULL );
  37.     MNU_setObj(obj, 1, MNU_NOR, 'M', "MetaKey"      , NULL, 2, NULL, NULL );
  38.     MNU_setObj(obj, 2, MNU_NOR, 'C', "CD Dictionary", NULL, 3, NULL, NULL );
  39.     mnu = MNU_open( x, y, MNUATT_EXIT, obj, "COMMAND" );
  40.     ret = MNU_start ( mnu );
  41.     MNU_close(mnu);
  42.     MNU_free(obj);
  43.     switch ( ret )
  44.     {
  45.         case    1:
  46.             cmd = "DIR";
  47.             DCN_puts(dcn, cmd );
  48.             DCN_puts(dcn, "\r\n" );
  49.             DCN_exec(dcn, TRUE, cmd);
  50.             ret = DCNCMD_PROMPT;
  51.             break;
  52.         case    2:
  53.             DCN_metakey(dcn);
  54.             ret = 0;
  55.             break;
  56.         case    3:
  57.             DCN_puts(dcn, "\r\n" );
  58.             DCN_dic(dcn);
  59.             ret = DCNCMD_PROMPT;
  60.             break;
  61.     }
  62.     return (ret);
  63. }
  64.  
  65. /*************************************************************************
  66. *    [PF-1]    MENU
  67. *************************************************************************/
  68.  
  69. int        DcnUsr_func_01( char *dcn )
  70. {
  71.     return    DCN_menu( dcn );
  72. }
  73.  
  74. /*************************************************************************
  75. *    [PF-2]    DIR
  76. *************************************************************************/
  77.  
  78. int        DcnUsr_func_02( char *dcn )
  79. {
  80.     int        ret;
  81.     char    *fdl;
  82.  
  83.     if ( (fdl = FDL_open(0)) == NULL )
  84.         return (ERR);
  85.     FDL_set_title( fdl, "DIRECTORY");
  86.     FDL_set_wildcard( fdl, "*.*");
  87.     ret = FDL_start(fdl);
  88.     FDL_close(fdl);
  89.  
  90.     DCN_puts(dcn, "\r\n" );
  91.     if ( ret == NORMAL )
  92.     {
  93. #ifdef    _TAROPYON_SYSTEM
  94.         DCN_exec( dcn, 0, "dr" );
  95. #else
  96.         DCN_exec( dcn, 0, "dir /w" );
  97. #endif
  98.     }
  99.     return    (DCNCMD_PROMPT);
  100. }
  101.  
  102. /*************************************************************************
  103. *    [PF-3]    TOOL
  104. *************************************************************************/
  105.  
  106. int        DcnUsr_func_03( char *dcn )
  107. {
  108.     int        ret;
  109.     char    *mnu;
  110.     char    *obj;
  111.  
  112.     obj = MNU_alloc(2);
  113.     MNU_setObj(obj, 0, MNU_NOR, 'C' , "Copy",        NULL, 1, NULL, NULL );
  114.     MNU_setObj(obj, 1, MNU_NOR, 'D' , "Delete"  ,    NULL, 2, NULL, NULL );
  115.     mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME,
  116.         MNUATT_EXIT, obj, "TOOL" );
  117.     ret = MNU_start ( mnu );
  118.     MNU_close(mnu);
  119.     MNU_free(obj);
  120.     switch ( ret )
  121.     {
  122.         case 1:    ret = _dcn_copy(dcn);    break;
  123.         case 2:    ret = _dcn_delete(dcn);    break;
  124.     }
  125.     return    (NORMAL);
  126. }
  127.  
  128. /*************************************************************************
  129. *    [PF-4]    UTY
  130. *************************************************************************/
  131.  
  132. int        DcnUsr_func_04( char *dcn )
  133. {
  134.     int        ret;
  135.     char    *mnu;
  136.     char    *obj;
  137.  
  138.     obj = MNU_alloc(2);
  139.     MNU_setObj(obj, 0, MNU_NOR, 'M' , "Make \x22tags\x22 file"          , NULL, 1, NULL, NULL );
  140.     MNU_setObj(obj, 1, MNU_NOR, 'S' , "Search function defined position", NULL, 2, NULL, NULL );
  141.     mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME,
  142.         MNUATT_EXIT, obj, "CCI UTILITY" );
  143.     ret = MNU_start ( mnu );
  144.     MNU_close(mnu);
  145.     MNU_free(obj);
  146.     switch ( ret )
  147.     {
  148.         case    1:    ret = _dcn_mktags(dcn);            break;
  149.         case    2:    ret = _dcn_searchFunction(dcn);    break;
  150. /*        case    3:    ret = _dcn_ciFind(dcn);            break;    */
  151.         default:    ret = NORMAL;    break;
  152.     }
  153.     return    (ret);
  154. }
  155.  
  156. /*************************************************************************
  157. *    [PF-5]    SETUP
  158. *************************************************************************/
  159.  
  160. int        DcnUsr_func_05( char *dcn )
  161. {
  162.     char        *cns;
  163.     int            ret;
  164.     char        *mnu;
  165.     char        *obj;
  166.  
  167.     cns = DcnGetCnsPtr( dcn );
  168.  
  169.     obj = MNU_alloc(2);
  170.     MNU_setObj(obj, 0, MNU_NOR, 'C' , "Change color table",    NULL, 1, NULL, NULL );
  171.     MNU_setObj(obj, 1, MNU_NOR, 'T' , "Save color table"  ,    NULL, 2, NULL, NULL );
  172.  
  173.     mnu = MNU_open( DLGPOS_MOS_SET_HOME, DLGPOS_MOS_SET_HOME,
  174.         MNUATT_EXIT, obj, "SETUP" );
  175.     ret = MNU_start ( mnu );
  176.     MNU_close(mnu);
  177.     MNU_free(obj);
  178.  
  179.     switch ( ret )
  180.     {
  181.         case    1:    DCN_changeColor( dcn );        break;
  182.         case    2:    CnsUsr_saveColTbl( cns );    break;
  183.     }
  184.     return    (NORMAL);
  185. }
  186.  
  187. /*************************************************************************
  188. *    [PF-6]    CD辞書検索
  189. *************************************************************************/
  190.  
  191. int        DcnUsr_func_06( char *dcn )
  192. {
  193.     DCN_puts(dcn, "\r\n" );
  194.     DCN_dic(dcn);
  195.     return (DCNCMD_PROMPT);
  196. }
  197.  
  198. /*************************************************************************
  199. *    [PF-7]    LHa
  200. *************************************************************************/
  201.  
  202. int        DcnUsr_func_07( char *dcn )
  203. {
  204. #ifdef    _ARCHIVE_IGN
  205.     return (NORMAL);
  206. #else
  207. #    ifdef    _ARCHIVE_LHX
  208.     return dcn_lhx_menu( dcn );
  209. #    else
  210.     return dcn_lha_menu( dcn );
  211. #    endif
  212. #endif
  213. }
  214.  
  215. /*************************************************************************
  216. *    [PF-8]    ISH
  217. *************************************************************************/
  218.  
  219. int        DcnUsr_func_08( char *dcn )
  220. {
  221.     return dcn_ish_menu( dcn );
  222. }
  223.  
  224. /*************************************************************************
  225. *    [PF-9]    MIEL
  226. *************************************************************************/
  227.  
  228. int        DcnUsr_func_09( char *dcn )
  229. {
  230.     char    cmd[256];
  231.  
  232.     sprintf( cmd, "%s %s miel *.*", CONSOLE, COMSPEC );
  233.     DCN_exec( dcn, 1, cmd );
  234.     return (NORMAL);
  235. }
  236.  
  237. /*************************************************************************
  238. *    [PF-10]    ORICON
  239. *************************************************************************/
  240.  
  241. int        DcnUsr_func_10( char *dcn )
  242. {
  243.     DLG_tmpMsgTime( DLGPOS_MOS_SET_CENTER, DLGPOS_MOS_SET_CENTER,
  244.         C_MBLACK, C_DLGBASE, COLMIX(C_TIMEBOX,C_GRAY),
  245.         3, "  ORICON を起動します。  \n    HEwinに戻るには[EXIT]とタイプしてください。  " );
  246.  
  247.     DCN_exec( dcn, 0, "ORICON" );
  248.     return (NORMAL);
  249. }
  250.  
  251. /*************************************************************************
  252. *    [PF-11]    HELP
  253. *************************************************************************/
  254.  
  255. int        DcnUsr_func_11( char *dcn )
  256. {
  257.     DCN_help(dcn);
  258. }
  259.  
  260. /*************************************************************************
  261. *    [PF-12]    ▲▼
  262. *************************************************************************/
  263.  
  264. int        DcnUsr_func_12( char *dcn )
  265. {
  266.     return DCN_resizeMax(dcn);
  267. }
  268.  
  269. /*************************************************************************
  270. *    [SHIFT]+[PF-12]    ▽△
  271. *************************************************************************/
  272.  
  273. int        DcnUsr_func_32( char *dcn )
  274. {
  275.     return DCN_resizeMin(dcn);
  276. }
  277.  
  278. #define    DCNTBL_NUM_SCNSAVE    (2)
  279. char    *DcnTbl_scnSave[DCNTBL_NUM_SCNSAVE] = 
  280. {
  281.     "ARICON",    "ORICON"
  282. };
  283.  
  284. /* 実行禁止    */
  285. #define    DCNTBL_NUM_IGNORE    (3)
  286. char    *DcnTbl_ignore[DCNTBL_NUM_IGNORE] = 
  287. {
  288.     "386",    "RUN386", "OAK"
  289. };
  290.  
  291. /* 確認    */
  292. #define    DCNTBL_NUM_CHECK    (2)
  293. char    *DcnTbl_check[DCNTBL_NUM_CHECK] = 
  294. {
  295.     "POFF",    "REIPL"
  296. };
  297.  
  298. char    *DcnTbl_pfkey[24] =
  299. {
  300.     "MENU",        "DIR",    "TOOL",    "UTY",    "SETUP",
  301.     "CD.DIC",
  302. #ifdef    _ARCHIVE_LHX
  303. #    ifdef    _ARCHIVE_LHX
  304.     "LHx",
  305. #    else
  306.     "LHa",
  307. #    endif
  308. #else
  309.     "",
  310. #endif
  311.                         "ISH",    "MIEL",    "ORICON",
  312.     "HELP",    "▲▼",
  313.  
  314.     "",    "",    "",    "",    "",
  315.     "",    "",    "",    "",    "",
  316.     "",
  317.     "▽△"
  318. };
  319.  
  320. char    *DcnTbl_metakey[26] =
  321. {
  322.     /* A */    "assign ",
  323.     /* B */    "tar cvmf :0BACKUP ",
  324.     /* C */    "cmode ",
  325.     /* D */    "dtree ",
  326.     /* E */    "etom -playsub ctrl -rym 10 ",
  327.     /* F */    "files ",
  328.     /* G */    "grep ",
  329.     /* H */    "hcfilter ",
  330.     /* I */    "indent -ip1 -bl -cli4 -npcs -npsl -ncs -di12 ",
  331.     /* J */    "jgawk ",
  332.     /* K */    "kran ",
  333.     /* L */    "ldiff ",
  334.     /* M */    "mitags *.h *.c > tags",
  335.     /* N */    "nifsave ",
  336.     /* O */    "ORICON ",
  337.     /* P */    "mipp ",
  338.     /* Q */    "qw ",
  339.     /* R */    "rdoak2 ",
  340.     /* S */    "strings ",
  341.     /* T */    "tab -D4 ",
  342.     /* U */    "undel ",
  343.     /* V */    "vcopy ",
  344.     /* W */    "whereis ",
  345.     /* X */    "xcopy ",
  346.     /* Y */    "yacc ",
  347.     /* Z */    "zf "
  348. };
  349.  
  350. /*************************************************************************
  351. *    DOS コンソール・システム初期化関数
  352. *************************************************************************/
  353.  
  354. int        DcnUsr_sysInit()
  355. {
  356.     char    *s;
  357.     int        i;
  358.  
  359.     if ( (s = getenv("COMSPEC")) == NULL )
  360.         strcpy( COMSPEC, "C:\\COMMAND.COM /C" );
  361.     else
  362.         sprintf( COMSPEC, "%s /C", s );
  363.     CONSOLE = "oricon";
  364.  
  365.     /* 画面の保存が必要なコマンド    */
  366.     for ( i = 0; i < DCNTBL_NUM_SCNSAVE; ++i )
  367.         DcnSetCommand( DcnTbl_scnSave[i], DCN_CMDSYS_SCNSAVE);
  368.  
  369.     /* 実行を禁止するコマンド    */
  370.     for ( i = 0; i < DCNTBL_NUM_IGNORE; ++i )
  371.         DcnSetCommand( DcnTbl_ignore[i], DCN_CMDSYS_IGNORE);
  372.  
  373.     /* 実行前に確認を行うコマンド    */
  374.     for ( i = 0; i < DCNTBL_NUM_CHECK; ++i )
  375.         DcnSetCommand( DcnTbl_check[i], DCN_CMDSYS_CHECK);
  376.  
  377.     /* ネイティブ子プロセス        */
  378.     DcnSetCommand("LHx"    ,DCN_CMDSYS_EXP);
  379.     DcnSetCommand("he386p" ,DCN_CMDSYS_EXP);
  380.     DcnSetCommand("sz"     ,DCN_CMDSYS_EXP);
  381.     DcnSetCommand("rz"     ,DCN_CMDSYS_EXP);
  382.     DcnSetCommand("gsplay" ,DCN_CMDSYS_EXP|DCN_CMDSYS_SCNSAVE);
  383.     DcnSetCommand("cci"    ,DCN_CMDSYS_EXP|DCN_CMDSYS_SCNSAVE);
  384.     DcnSetCommand("znsplay",DCN_CMDSYS_EXP|DCN_CMDSYS_SCNSAVE);
  385.  
  386.     /* PFキー表示    */
  387.     for ( i = 0; i <24; ++i )
  388.         DCN_setPfkeyMsg(  (i%12)+1, i/12, DcnTbl_pfkey[i] );
  389.  
  390.     /* メタキー    */
  391.     for ( i = 0; i <26; ++i )
  392.         DcnMetaKeySet('A'+i, DcnTbl_metakey[i]);
  393.  
  394.     return (NORMAL);
  395. }
  396.  
  397. int        DcnUsr_sysTerm()
  398. {
  399.     return (NORMAL);
  400. }
  401.  
  402. /*************************************************************************
  403. *    DOS コマンド実行
  404. *************************************************************************/
  405.  
  406. int        DcnUsr_system( char *dcn, char *cmd )
  407. {
  408.     DCN_system(dcn, cmd);
  409.     return (NORMAL);
  410. }
  411.  
  412. #undef    DCNPTR
  413. #undef    CONSOLE
  414. #undef    COMSPEC
  415. #undef    DCNTBL_NUM_SCNSAVE
  416. #undef    DCNTBL_NUM_IGNORE
  417. #undef    DCNTBL_NUM_CHECK
  418.